<!DOCTYPE HTML>
<html lang="zh-hans" >
    <!-- Start book Python基础 -->
<!-- Start book Python基础 -->
    <head>
        <!-- head:start -->
<!-- head:start -->
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <title>常见系统模块的使用 | Python基础</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.6.7">
        <meta name="author" content="姜伟">
        
        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
        
    <link rel="stylesheet" href="gitbook/style.css">
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-prism/prism.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-splitter/splitter.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-highlight/website.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-fontsettings/website.css">
        
    
    

        
    
    
    <link rel="next" href="./chapter03.html" />
    
    
    <link rel="prev" href="./chapter01.html" />
    

        <!-- head:end -->
<!-- head:end -->
    </head>
    <body>
        <!-- body:start -->
<!-- body:start -->
        
    <div class="book"
        data-level="2"
        data-chapter-title="常见系统模块的使用"
        data-filepath="chapter02.md"
        data-basepath="."
        data-revision="Sun Feb 16 2020 15:12:30 GMT+0800 (CST)"
        data-innerlanguage="">
    

<div class="book-summary">
    <nav role="navigation">
        <ul class="summary">
            
            
            
            

            

            
    
        <li class="chapter " data-level="0" data-path="index.html">
            
                
                    <a href="./index.html">
                
                        <i class="fa fa-check"></i>
                        
                        学习目标
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="1" data-path="chapter01.html">
            
                
                    <a href="./chapter01.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>1.</b>
                        
                        导入模块
                    </a>
            
            
        </li>
    
        <li class="chapter active" data-level="2" data-path="chapter02.html">
            
                
                    <a href="./chapter02.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>2.</b>
                        
                        常见系统模块的使用
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="3" data-path="chapter03.html">
            
                
                    <a href="./chapter03.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>3.</b>
                        
                        pip的安装配置
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="4" data-path="chapter04.html">
            
                
                    <a href="./chapter04.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>4.</b>
                        
                        管理第三方软件
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="5" data-path="chapter05.html">
            
                
                    <a href="./chapter05.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>5.</b>
                        
                        自定义模块
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="6" data-path="chapter06.html">
            
                
                    <a href="./chapter06.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>6.</b>
                        
                        包的使用
                    </a>
            
            
        </li>
    


            
            <li class="divider"></li>
            <li>
                <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                    本书使用 GitBook 发布
                </a>
            </li>
            
        </ul>
    </nav>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header" role="navigation">
    <!-- Actions Left -->
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="./" >Python基础</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1" role="main">
                <div class="page-inner">
                
                
                    <section class="normal" id="section-">
                    
                        <h2 id="&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x6A21;&#x5757;">&#x5E38;&#x89C1;&#x7CFB;&#x7EDF;&#x6A21;&#x5757;</h2>
<p>&#x4E3A;&#x4E86;&#x65B9;&#x4FBF;&#x7A0B;&#x5E8F;&#x5458;&#x5F00;&#x53D1;&#x4EE3;&#x7801;&#xFF0C;Python&#x63D0;&#x4F9B;&#x4E86;&#x5F88;&#x591A;&#x5185;&#x7F6E;&#x7684;&#x6A21;&#x5757;&#x7ED9;&#x7A0B;&#x5E8F;&#x5458;&#x7528;&#x6765;&#x63D0;&#x9AD8;&#x7F16;&#x7801;&#x6548;&#x7387;&#x3002;&#x5E38;&#x89C1;&#x7684;&#x5185;&#x7F6E;&#x6A21;&#x5757;&#x6709;:</p>
<ul>
<li><a href="#os">os&#x6A21;&#x5757;</a></li>
<li><a href="#sys">sys&#x6A21;&#x5757;</a></li>
<li><a href="#math">math&#x6A21;&#x5757;</a></li>
<li><a href="#random">random&#x6A21;&#x5757;</a></li>
<li><a href="#datetime">datetime&#x6A21;&#x5757;</a></li>
<li><a href="#time">time&#x6A21;&#x5757;</a></li>
<li><a href="#calendar">calendar&#x6A21;&#x5757;</a></li>
<li><a href="#hashlib">hashlib&#x6A21;&#x5757;</a></li>
<li><a href="#hmac">hmac&#x6A21;&#x5757;</a></li>
<li><a href="#copy">copy&#x6A21;&#x5757;</a></li>
<li><a href="#uuid">uuid&#x6A21;&#x5757;&lt;/uuid&gt;</a></li>
</ul>
<h3 id="os&#x6A21;&#x5757;">OS&#x6A21;&#x5757;</h3>
<p><span id="os"></span>OS&#x5168;&#x79F0;OperationSystem,&#x5373;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x6A21;&#x5757;&#xFF0C;&#x8FD9;&#x4E2A;&#x6A21;&#x5757;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x5E76;&#x4E14;&#x5B9E;&#x73B0;&#x8DE8;&#x5E73;&#x53F0;&#x64CD;&#x4F5C;&#x3002;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> os
os.getcwd()  <span class="hljs-comment"># &#x83B7;&#x53D6;&#x5F53;&#x524D;&#x7684;&#x5DE5;&#x4F5C;&#x76EE;&#x5F55;&#xFF0C;&#x5373;&#x5F53;&#x524D;python&#x811A;&#x672C;&#x5DE5;&#x4F5C;&#x7684;&#x76EE;&#x5F55;</span>
os.chdir(<span class="hljs-string">&apos;test&apos;</span>) <span class="hljs-comment"># &#x6539;&#x53D8;&#x5F53;&#x524D;&#x811A;&#x672C;&#x5DE5;&#x4F5C;&#x76EE;&#x5F55;&#xFF0C;&#x76F8;&#x5F53;&#x4E8E;shell&#x4E0B;&#x7684;cd&#x547D;&#x4EE4;</span>
os.rename(<span class="hljs-string">&apos;&#x6BD5;&#x4E1A;&#x8BBA;&#x6587;.txt&apos;</span>,<span class="hljs-string">&apos;&#x6BD5;&#x4E1A;&#x8BBA;&#x6587;-&#x6700;&#x7EC8;&#x7248;.txt&apos;</span>) <span class="hljs-comment"># &#x6587;&#x4EF6;&#x91CD;&#x547D;&#x540D;</span>
os.remove(<span class="hljs-string">&apos;&#x6BD5;&#x4E1A;&#x8BBA;&#x6587;.txt&apos;</span>) <span class="hljs-comment"># &#x5220;&#x9664;&#x6587;&#x4EF6;</span>
os.rmdir(<span class="hljs-string">&apos;demo&apos;</span>)  <span class="hljs-comment"># &#x5220;&#x9664;&#x7A7A;&#x6587;&#x4EF6;&#x5939;</span>
os.removedirs(<span class="hljs-string">&apos;demo&apos;</span>) <span class="hljs-comment"># &#x5220;&#x9664;&#x7A7A;&#x6587;&#x4EF6;&#x5939;</span>
os.mkdir(<span class="hljs-string">&apos;demo&apos;</span>)  <span class="hljs-comment"># &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x5939;</span>
os.chdir(<span class="hljs-string">&apos;C:\\&apos;</span>) <span class="hljs-comment"># &#x5207;&#x6362;&#x5DE5;&#x4F5C;&#x76EE;&#x5F55;</span>
os.listdir(<span class="hljs-string">&apos;C:\\&apos;</span>) <span class="hljs-comment"># &#x5217;&#x51FA;&#x6307;&#x5B9A;&#x76EE;&#x5F55;&#x91CC;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x548C;&#x6587;&#x4EF6;&#x5939;</span>
os.name <span class="hljs-comment"># nt-&gt;widonws posix-&gt;Linux/Unix&#x6216;&#x8005;MacOS</span>
os.environ <span class="hljs-comment"># &#x83B7;&#x53D6;&#x5230;&#x73AF;&#x5883;&#x914D;&#x7F6E;</span>
os.environ.get(<span class="hljs-string">&apos;PATH&apos;</span>) <span class="hljs-comment"># &#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x7684;&#x73AF;&#x5883;&#x914D;&#x7F6E;</span>

os.path.abspath(path) <span class="hljs-comment"># &#x83B7;&#x53D6;Path&#x89C4;&#x8303;&#x4F1A;&#x7684;&#x7EDD;&#x5BF9;&#x8DEF;&#x5F84;</span>
os.path.exists(path)  <span class="hljs-comment"># &#x5982;&#x679C;Path&#x5B58;&#x5728;&#xFF0C;&#x5219;&#x8FD4;&#x56DE;True</span>
os.path.isdir(path)  <span class="hljs-comment"># &#x5982;&#x679C;path&#x662F;&#x4E00;&#x4E2A;&#x5B58;&#x5728;&#x7684;&#x76EE;&#x5F55;&#xFF0C;&#x8FD4;&#x56DE;True&#x3002;&#x5426;&#x5219;&#x8FD4;&#x56DE;False</span>
os.path.isfile(path) <span class="hljs-comment"># &#x5982;&#x679C;path&#x662F;&#x4E00;&#x4E2A;&#x5B58;&#x5728;&#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x8FD4;&#x56DE;True&#x3002;&#x5426;&#x5219;&#x8FD4;&#x56DE;False</span>
os.path.splitext(path)  <span class="hljs-comment"># &#x7528;&#x6765;&#x5C06;&#x6307;&#x5B9A;&#x8DEF;&#x5F84;&#x8FDB;&#x884C;&#x5206;&#x9694;&#xFF0C;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x5230;&#x6587;&#x4EF6;&#x7684;&#x540E;&#x7F00;&#x540D;</span>
</code></pre>
<h3 id="sys&#x6A21;&#x5757;">sys&#x6A21;&#x5757;</h3>
<p><span id="sys"></span>&#x8BE5;&#x6A21;&#x5757;&#x63D0;&#x4F9B;&#x5BF9;&#x89E3;&#x91CA;&#x5668;&#x4F7F;&#x7528;&#x6216;&#x7EF4;&#x62A4;&#x7684;&#x4E00;&#x4E9B;&#x53D8;&#x91CF;&#x7684;&#x8BBF;&#x95EE;&#xFF0C;&#x4EE5;&#x53CA;&#x4E0E;&#x89E3;&#x91CA;&#x5668;&#x5F3A;&#x70C8;&#x4EA4;&#x4E92;&#x7684;&#x51FD;&#x6570;&#x3002;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> sys
sys.path <span class="hljs-comment"># &#x6A21;&#x5757;&#x7684;&#x67E5;&#x627E;&#x8DEF;&#x5F84;</span>
sys.argv <span class="hljs-comment"># &#x4F20;&#x9012;&#x7ED9;Python&#x811A;&#x672C;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C2;&#x6570;&#x5217;&#x8868;</span>
sys.exit(code) <span class="hljs-comment"># &#x8BA9;&#x7A0B;&#x5E8F;&#x4EE5;&#x6307;&#x5B9A;&#x7684;&#x9000;&#x51FA;&#x7801;&#x7ED3;&#x675F;</span>

sys.stdin <span class="hljs-comment"># &#x6807;&#x51C6;&#x8F93;&#x5165;&#x3002;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5B83;&#x6765;&#x83B7;&#x53D6;&#x7528;&#x6237;&#x7684;&#x8F93;&#x5165;</span>
sys.stdout <span class="hljs-comment"># &#x6807;&#x51C6;&#x8F93;&#x51FA;&#x3002;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4FEE;&#x6539;&#x5B83;&#x6765;&#x767E;&#x53D8;&#x9ED8;&#x8BA4;&#x8F93;&#x51FA;</span>
sys.stderr <span class="hljs-comment"># &#x9519;&#x8BEF;&#x8F93;&#x51FA;&#x3002;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4FEE;&#x6539;&#x5B83;&#x6765;&#x6539;&#x53D8;&#x9519;&#x8BEF;&#x5220;&#x9664;</span>
</code></pre>
<h3 id="math&#x6A21;&#x5757;">math&#x6A21;&#x5757;</h3>
<p><span id="math"></span>math&#x6A21;&#x5757;&#x4FDD;&#x5B58;&#x4E86;&#x6570;&#x5B66;&#x8BA1;&#x7B97;&#x76F8;&#x5173;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x7684;&#x5B9E;&#x73B0;&#x6570;&#x5B66;&#x8FD0;&#x7B97;&#x3002;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> math
print(math.fabs(-<span class="hljs-number">100</span>)) <span class="hljs-comment"># &#x53D6;&#x7EDD;&#x5BF9;&#x503C;</span>
print(math.ceil(<span class="hljs-number">34.01</span>))  <span class="hljs-comment">#&#x5411;&#x4E0A;&#x53D6;&#x6574;</span>
print(math.factorial(<span class="hljs-number">5</span>)) <span class="hljs-comment"># &#x8BA1;&#x7B97;&#x9636;&#x4E58;</span>
print(math.floor(<span class="hljs-number">34.98</span>))  <span class="hljs-comment"># &#x5411;&#x4E0B;&#x53D6;&#x6574;</span>
print(math.pi)   <span class="hljs-comment"># &#x3C0;&#x7684;&#x503C;&#xFF0C;&#x7EA6;&#x7B49;&#x4E8E; 3.141592653589793</span>
print(math.pow(<span class="hljs-number">2</span>, <span class="hljs-number">10</span>)) <span class="hljs-comment"># 2&#x7684;10&#x6B21;&#x65B9;</span>
print(math.sin(math.pi / <span class="hljs-number">6</span>))  <span class="hljs-comment"># &#x6B63;&#x5F26;&#x503C;</span>
print(math.cos(math.pi / <span class="hljs-number">3</span>))  <span class="hljs-comment"># &#x4F59;&#x5F26;&#x503C;</span>
print(math.tan(math.pi / <span class="hljs-number">2</span>))  <span class="hljs-comment"># &#x6B63;&#x5207;&#x503C;</span>
</code></pre>
<h3 id="random&#x6A21;&#x5757;">random&#x6A21;&#x5757;</h3>
<p><span id="random"></span>random &#x6A21;&#x5757;&#x4E3B;&#x8981;&#x7528;&#x4E8E;&#x751F;&#x6210;&#x968F;&#x673A;&#x6570;&#x6216;&#x8005;&#x4ECE;&#x4E00;&#x4E2A;&#x5217;&#x8868;&#x91CC;&#x968F;&#x673A;&#x83B7;&#x53D6;&#x6570;&#x636E;&#x3002;</p>
<pre><code class="lang-python">print(random.random())  <span class="hljs-comment"># &#x751F;&#x6210; [0,1)&#x7684;&#x968F;&#x673A;&#x6D6E;&#x70B9;&#x6570;</span>
print(random.uniform(<span class="hljs-number">20</span>, <span class="hljs-number">30</span>))  <span class="hljs-comment"># &#x751F;&#x6210;[20,30]&#x7684;&#x968F;&#x673A;&#x6D6E;&#x70B9;&#x6570;</span>
print(random.randint(<span class="hljs-number">10</span>, <span class="hljs-number">30</span>))  <span class="hljs-comment"># &#x751F;&#x6210;[10,30]&#x7684;&#x968F;&#x673A;&#x6574;&#x6570;</span>
print(random.randrange(<span class="hljs-number">20</span>, <span class="hljs-number">30</span>))  <span class="hljs-comment"># &#x751F;&#x6210;[20,30)&#x7684;&#x968F;&#x673A;&#x6574;&#x6570;</span>
print(random.choice(<span class="hljs-string">&apos;abcdefg&apos;</span>))  <span class="hljs-comment"># &#x4ECE;&#x5217;&#x8868;&#x91CC;&#x968F;&#x673A;&#x53D6;&#x51FA;&#x4E00;&#x4E2A;&#x5143;&#x7D20;</span>
print(random.sample(<span class="hljs-string">&apos;abcdefghij&apos;</span>, <span class="hljs-number">3</span>)) <span class="hljs-comment"># &#x4ECE;&#x5217;&#x8868;&#x91CC;&#x968F;&#x673A;&#x53D6;&#x51FA;&#x6307;&#x5B9A;&#x4E2A;&#x6570;&#x7684;&#x5143;&#x7D20;</span>
</code></pre>
<blockquote>
<p>&#x7EC3;&#x4E60;:</p>
<p>&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x7528;&#x6765;&#x751F;&#x6210;&#x7531;&#x6570;&#x5B57;&#x548C;&#x5B57;&#x6BCD;&#x7EC4;&#x6210;&#x7684;&#x968F;&#x673A;&#x9A8C;&#x8BC1;&#x7801;&#x3002;&#x8BE5;&#x51FD;&#x6570;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x53C2;&#x6570;&#x7528;&#x6765;&#x6307;&#x5B9A;&#x9A8C;&#x8BC1;&#x7801;&#x7684;&#x957F;&#x5EA6;&#x3002;</p>
</blockquote>
<h3 id="datetime&#x6A21;&#x5757;">datetime&#x6A21;&#x5757;</h3>
<p><span id="datetime"></span>datetime&#x6A21;&#x5757;&#x4E3B;&#x8981;&#x7528;&#x6765;&#x663E;&#x793A;&#x65E5;&#x671F;&#x65F6;&#x95F4;&#xFF0C;&#x8FD9;&#x91CC;&#x4E3B;&#x8981;&#x6D89;&#x53CA; <code>date</code>&#x7C7B;&#xFF0C;&#x7528;&#x6765;&#x663E;&#x793A;&#x65E5;&#x671F;&#xFF1B;<code>time</code>&#x7C7B;&#xFF0C;&#x7528;&#x6765;&#x663E;&#x793A;&#x65F6;&#x95F4;&#xFF1B;<code>dateteime</code>&#x7C7B;&#xFF0C;&#x7528;&#x6765;&#x663E;&#x793A;&#x65E5;&#x671F;&#x65F6;&#x95F4;;<code>timedelta</code>&#x7C7B;&#x7528;&#x6765;&#x8BA1;&#x7B97;&#x65F6;&#x95F4;&#x3002;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> datetime
print(datetime.date(<span class="hljs-number">2020</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>))  <span class="hljs-comment"># &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65E5;&#x671F;</span>
print(datetime.time(<span class="hljs-number">18</span>, <span class="hljs-number">23</span>, <span class="hljs-number">45</span>)) <span class="hljs-comment"># &#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65F6;&#x95F4;</span>
print(datetime.datetime.now())  <span class="hljs-comment"># &#x83B7;&#x53D6;&#x5F53;&#x524D;&#x7684;&#x65E5;&#x671F;&#x65F6;&#x95F4;</span>
print(datetime.datetime.now() + datetime.timedelta(<span class="hljs-number">3</span>))  <span class="hljs-comment"># &#x8BA1;&#x7B97;&#x4E09;&#x5929;&#x4EE5;&#x540E;&#x7684;&#x65E5;&#x671F;&#x65F6;&#x95F4;</span>
</code></pre>
<h3 id="time&#x6A21;&#x5757;">time&#x6A21;&#x5757;</h3>
<p><span id="time"></span>&#x9664;&#x4E86;&#x4F7F;&#x7528;datetime&#x6A21;&#x5757;&#x91CC;&#x7684;time&#x7C7B;&#x4EE5;&#x5916;&#xFF0C;Python&#x8FD8;&#x5355;&#x72EC;&#x63D0;&#x4F9B;&#x4E86;&#x53E6;&#x4E00;&#x4E2A;time&#x6A21;&#x5757;&#xFF0C;&#x7528;&#x6765;&#x64CD;&#x4F5C;&#x65F6;&#x95F4;&#x3002;time&#x6A21;&#x5757;&#x4E0D;&#x4EC5;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x663E;&#x793A;&#x65F6;&#x95F4;&#xFF0C;&#x8FD8;&#x53EF;&#x4EE5;&#x63A7;&#x5236;&#x7A0B;&#x5E8F;&#xFF0C;&#x8BA9;&#x7A0B;&#x5E8F;&#x6682;&#x505C;(&#x4F7F;&#x7528;sleep&#x51FD;&#x6570;)</p>
<pre><code class="lang-python">print(time.time())  <span class="hljs-comment"># &#x83B7;&#x53D6;&#x4ECE;1970-01-01 00:00:00 UTC &#x5230;&#x73B0;&#x5728;&#x65F6;&#x95F4;&#x7684;&#x79D2;&#x6570;</span>
print(time.strftime(<span class="hljs-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)) <span class="hljs-comment"># &#x6309;&#x7167;&#x6307;&#x5B9A;&#x683C;&#x5F0F;&#x8F93;&#x51FA;&#x65F6;&#x95F4;</span>
print(time.asctime()) <span class="hljs-comment">#Mon Apr 15 20:03:23 2019</span>
print(time.ctime()) <span class="hljs-comment"># Mon Apr 15 20:03:23 2019</span>

print(<span class="hljs-string">&apos;hello&apos;</span>)
print(time.sleep(<span class="hljs-number">10</span>)) <span class="hljs-comment"># &#x8BA9;&#x7EBF;&#x7A0B;&#x6682;&#x505C;10&#x79D2;&#x949F;</span>
print(<span class="hljs-string">&apos;world&apos;</span>)
</code></pre>
<h3 id="calendar&#x6A21;&#x5757;">calendar&#x6A21;&#x5757;</h3>
<p><span id="calendar"></span>calendar&#x6A21;&#x5757;&#x7528;&#x6765;&#x663E;&#x793A;&#x4E00;&#x4E2A;&#x65E5;&#x5386;&#xFF0C;&#x4F7F;&#x7528;&#x7684;&#x4E0D;&#x591A;&#xFF0C;&#x4E86;&#x89E3;&#x5373;&#x53EF;&#x3002;</p>
<pre><code class="lang-python">calendar.setfirstweekday(calendar.SUNDAY) <span class="hljs-comment"># &#x8BBE;&#x7F6E;&#x6BCF;&#x5468;&#x8D77;&#x59CB;&#x65E5;&#x671F;&#x7801;&#x3002;&#x5468;&#x4E00;&#x5230;&#x5468;&#x65E5;&#x5206;&#x522B;&#x5BF9;&#x5E94; 0 ~ 6</span>
calendar.firstweekday()<span class="hljs-comment"># &#x8FD4;&#x56DE;&#x5F53;&#x524D;&#x6BCF;&#x5468;&#x8D77;&#x59CB;&#x65E5;&#x671F;&#x7684;&#x8BBE;&#x7F6E;&#x3002;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x9996;&#x6B21;&#x8F7D;&#x5165;calendar&#x6A21;&#x5757;&#x65F6;&#x8FD4;&#x56DE;0&#xFF0C;&#x5373;&#x661F;&#x671F;&#x4E00;&#x3002;</span>
c = calendar.calendar(<span class="hljs-number">2019</span>)  <span class="hljs-comment"># &#x751F;&#x6210;2019&#x5E74;&#x7684;&#x65E5;&#x5386;&#xFF0C;&#x5E76;&#x4E14;&#x4EE5;&#x5468;&#x65E5;&#x4E3A;&#x5176;&#x5B9E;&#x65E5;&#x671F;&#x7801;</span>
print(c)  <span class="hljs-comment">#&#x6253;&#x5370;2019&#x5E74;&#x65E5;&#x5386;</span>
print(calendar.isleap(<span class="hljs-number">2000</span>)) <span class="hljs-comment"># True.&#x95F0;&#x5E74;&#x8FD4;&#x56DE;True,&#x5426;&#x5219;&#x8FD4;&#x56DE;False</span>
count = calendar.leapdays(<span class="hljs-number">1996</span>,<span class="hljs-number">2010</span>) <span class="hljs-comment"># &#x83B7;&#x53D6;1996&#x5E74;&#x5230;2010&#x5E74;&#x4E00;&#x5171;&#x6709;&#x591A;&#x5C11;&#x4E2A;&#x95F0;&#x5E74;</span>
print(calendar.month(<span class="hljs-number">2019</span>, <span class="hljs-number">3</span>))  <span class="hljs-comment"># &#x6253;&#x5370;2019&#x5E74;3&#x6708;&#x7684;&#x65E5;&#x5386;</span>
</code></pre>
<h3 id="hashlib&#x6A21;&#x5757;">hashlib&#x6A21;&#x5757;</h3>
<p><span id="hashlib"></span>hashlib&#x662F;&#x4E00;&#x4E2A;&#x63D0;&#x4F9B;&#x5B57;&#x7B26;&#x52A0;&#x5BC6;&#x529F;&#x80FD;&#x7684;&#x6A21;&#x5757;&#xFF0C;&#x5305;&#x542B;MD5&#x548C;SHA&#x7684;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;&#xFF0C;&#x5177;&#x4F53;&#x652F;&#x6301;md5,sha1, sha224, sha256, sha384, sha512&#x7B49;&#x7B97;&#x6CD5;&#x3002; &#x8BE5;&#x6A21;&#x5757;&#x5728;&#x7528;&#x6237;&#x767B;&#x5F55;&#x8BA4;&#x8BC1;&#x65B9;&#x9762;&#x5E94;&#x7528;&#x5E7F;&#x6CDB;&#xFF0C;&#x5BF9;&#x6587;&#x672C;&#x52A0;&#x5BC6;&#x4E5F;&#x5F88;&#x5E38;&#x89C1;&#x3002;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> hashlib

<span class="hljs-comment"># &#x5F85;&#x52A0;&#x5BC6;&#x4FE1;&#x606F;</span>
str = <span class="hljs-string">&apos;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x6D4B;&#x8BD5;&apos;</span>

<span class="hljs-comment"># &#x521B;&#x5EFA;md5&#x5BF9;&#x8C61;</span>
hl = hashlib.md5(<span class="hljs-string">&apos;hello&apos;</span>.encode(encoding=<span class="hljs-string">&apos;utf8&apos;</span>))
print(<span class="hljs-string">&apos;MD5&#x52A0;&#x5BC6;&#x540E;&#x4E3A; &#xFF1A;&apos;</span> + hl.hexdigest())

h1 = hashlib.sha1(<span class="hljs-string">&apos;123456&apos;</span>.encode())
print(h1.hexdigest())
h2 = hashlib.sha224(<span class="hljs-string">&apos;123456&apos;</span>.encode())
print(h2.hexdigest())
h3 = hashlib.sha256(<span class="hljs-string">&apos;123456&apos;</span>.encode())
print(h3.hexdigest())
h4 = hashlib.sha384(<span class="hljs-string">&apos;123456&apos;</span>.encode())
print(h4.hexdigest())
</code></pre>
<h3 id="hmac&#x6A21;&#x5757;">hmac&#x6A21;&#x5757;</h3>
<p><span id="hmac"></span>HMAC&#x7B97;&#x6CD5;&#x4E5F;&#x662F;&#x4E00;&#x79CD;&#x4E00;&#x79CD;&#x5355;&#x9879;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;&#xFF0C;&#x5E76;&#x4E14;&#x5B83;&#x662F;&#x57FA;&#x4E8E;&#x4E0A;&#x9762;&#x5404;&#x79CD;&#x54C8;&#x5E0C;&#x7B97;&#x6CD5;/&#x6563;&#x5217;&#x7B97;&#x6CD5;&#x7684;&#xFF0C;&#x53EA;&#x662F;&#x5B83;&#x53EF;&#x4EE5;&#x5728;&#x8FD0;&#x7B97;&#x8FC7;&#x7A0B;&#x4E2D;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5BC6;&#x94A5;&#x6765;&#x589E;&#x589E;&#x5F3A;&#x5B89;&#x5168;&#x6027;&#x3002;hmac&#x6A21;&#x5757;&#x5B9E;&#x73B0;&#x4E86;HAMC&#x7B97;&#x6CD5;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x76F8;&#x5E94;&#x7684;&#x51FD;&#x6570;&#x548C;&#x65B9;&#x6CD5;&#xFF0C;&#x4E14;&#x4E0E;hashlib&#x63D0;&#x4F9B;&#x7684;api&#x57FA;&#x672C;&#x4E00;&#x81F4;&#x3002;</p>
<pre><code class="lang-python">h = hmac.new(<span class="hljs-string">&apos;h&apos;</span>.encode(),<span class="hljs-string">&apos;&#x4F60;&#x597D;&apos;</span>.encode())
result = h.hexdigest()
print(result)  <span class="hljs-comment"># &#x83B7;&#x53D6;&#x52A0;&#x5BC6;&#x540E;&#x7684;&#x7ED3;&#x679C;</span>
</code></pre>
<h3 id="copy&#x6A21;&#x5757;">copy&#x6A21;&#x5757;</h3>
<p><span id="copy"><span>copy&#x6A21;&#x5757;&#x91CC;&#x6709;copy&#x548C;deepcopy&#x4E24;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x5206;&#x522B;&#x7528;&#x6765;&#x5BF9;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x6DF1;&#x590D;&#x5236;&#x548C;&#x6D45;&#x590D;&#x5236;&#x3002;</span></span></p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> copy

nums = [<span class="hljs-number">1</span>, <span class="hljs-number">5</span>, <span class="hljs-number">3</span>, <span class="hljs-number">8</span>, [<span class="hljs-number">100</span>, <span class="hljs-number">200</span>, <span class="hljs-number">300</span>, <span class="hljs-number">400</span>], <span class="hljs-number">6</span>, <span class="hljs-number">7</span>]
nums1 = copy.copy(nums)  <span class="hljs-comment"># &#x5BF9;nums&#x5217;&#x8868;&#x8FDB;&#x884C;&#x6D45;&#x590D;&#x5236;</span>
nums2 = copy.deepcopy(nums)  <span class="hljs-comment"># &#x5BF9;nums&#x5217;&#x8868;&#x8FDB;&#x884C;&#x6DF1;&#x590D;&#x5236;</span>
</code></pre>
<h3 id="uuid&#x6A21;&#x5757;">uuid&#x6A21;&#x5757;</h3>
<p><span id="uuid"></span>UUID&#x662F;128&#x4F4D;&#x7684;&#x5168;&#x5C40;&#x552F;&#x4E00;&#x6807;&#x8BC6;&#x7B26;&#xFF0C;&#x901A;&#x5E38;&#x7531;32&#x5B57;&#x8282;&#x7684;&#x5B57;&#x6BCD;&#x4E32;&#x8868;&#x793A;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x65F6;&#x95F4;&#x548C;&#x7A7A;&#x95F4;&#x7684;&#x552F;&#x4E00;&#x6027;&#xFF0C;&#x4E5F;&#x79F0;&#x4E3A;GUID&#x3002;&#x901A;&#x8FC7;MAC&#x5730;&#x5740;&#x3001;&#x65F6;&#x95F4;&#x6233;&#x3001;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x3001;&#x968F;&#x673A;&#x6570;&#x3001;&#x4F2A;&#x968F;&#x673A;&#x6570;&#x6765;&#x4FDD;&#x8BC1;&#x751F;&#x4EA7;&#x7684;ID&#x7684;&#x552F;&#x4E00;&#x6027;&#x3002;&#x968F;&#x673A;&#x751F;&#x6210;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x53EF;&#x4EE5;&#x5F53;&#x6210;token&#x4F7F;&#x7528;&#xFF0C;&#x5F53;&#x6210;&#x7528;&#x6237;&#x8D26;&#x53F7;&#x4F7F;&#x7528;&#xFF0C;&#x5F53;&#x6210;&#x8BA2;&#x5355;&#x53F7;&#x4F7F;&#x7528;&#x3002;</p>
<table>
<thead>
<tr>
<th>&#x65B9;&#x6CD5;</th>
<th>&#x4F5C;&#x7528;</th>
</tr>
</thead>
<tbody>
<tr>
<td>uuid.uuid1()</td>
<td>&#x57FA;&#x4E8E;MAC&#x5730;&#x5740;&#xFF0C;&#x65F6;&#x95F4;&#x6233;&#xFF0C;&#x968F;&#x673A;&#x6570;&#x6765;&#x751F;&#x6210;&#x552F;&#x4E00;&#x7684;uuid&#xFF0C;&#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x5168;&#x7403;&#x8303;&#x56F4;&#x5185;&#x7684;&#x552F;&#x4E00;&#x6027;&#x3002;</td>
</tr>
<tr>
<td>uuid.uuid2()</td>
<td>&#x7B97;&#x6CD5;&#x4E0E;uuid1&#x76F8;&#x540C;&#xFF0C;&#x4E0D;&#x540C;&#x7684;&#x662F;&#x628A;&#x65F6;&#x95F4;&#x6233;&#x7684;&#x524D;4&#x4F4D;&#x7F6E;&#x6362;&#x4E3A;POSIX&#x7684;UID&#x3002;&#x4E0D;&#x8FC7;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;python&#x4E2D;&#x6CA1;&#x6709;&#x57FA;&#x4E8E;DCE&#x7684;&#x7B97;&#x6CD5;&#xFF0C;&#x6240;&#x4EE5;python&#x7684;uuid&#x6A21;&#x5757;&#x4E2D;&#x6CA1;&#x6709;uuid2&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#x3002;</td>
</tr>
<tr>
<td>uuid.uuid3(namespace,name)</td>
<td>&#x901A;&#x8FC7;&#x8BA1;&#x7B97;&#x4E00;&#x4E2A;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x548C;&#x540D;&#x5B57;&#x7684;md5&#x6563;&#x5217;&#x503C;&#x6765;&#x7ED9;&#x51FA;&#x4E00;&#x4E2A;uuid&#xFF0C;&#x6240;&#x4EE5;&#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x4E2D;&#x7684;&#x4E0D;&#x540C;&#x540D;&#x5B57;&#x5177;&#x6709;&#x4E0D;&#x540C;&#x7684;uuid&#xFF0C;&#x4F46;&#x662F;&#x76F8;&#x540C;&#x7684;&#x540D;&#x5B57;&#x5C31;&#x662F;&#x76F8;&#x540C;&#x7684;uuid&#x4E86;&#x3002;namespace&#x5E76;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x81EA;&#x5DF1;&#x624B;&#x52A8;&#x6307;&#x5B9A;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x6216;&#x5176;&#x4ED6;&#x91CF;&#xFF0C;&#x800C;&#x662F;&#x5728;uuid&#x6A21;&#x5757;&#x4E2D;&#x672C;&#x8EAB;&#x7ED9;&#x51FA;&#x7684;&#x4E00;&#x4E9B;&#x503C;&#x3002;&#x6BD4;&#x5982;uuid.NAMESPACE_DNS&#xFF0C;uuid.NAMESPACE_OID&#xFF0C;uuid.NAMESPACE_OID&#x8FD9;&#x4E9B;&#x503C;&#x3002;&#x8FD9;&#x4E9B;&#x503C;&#x672C;&#x8EAB;&#x4E5F;&#x662F;UUID&#x5BF9;&#x8C61;&#xFF0C;&#x6839;&#x636E;&#x4E00;&#x5B9A;&#x7684;&#x89C4;&#x5219;&#x8BA1;&#x7B97;&#x5F97;&#x51FA;&#x3002;</td>
</tr>
<tr>
<td>uuid.uuid4()</td>
<td>&#x901A;&#x8FC7;&#x4F2A;&#x968F;&#x673A;&#x6570;&#x5F97;&#x5230;uuid&#xFF0C;&#x662F;&#x6709;&#x4E00;&#x5B9A;&#x6982;&#x7387;&#x91CD;&#x590D;&#x7684;</td>
</tr>
<tr>
<td>uuid.uuid5(namespace,name)</td>
<td>&#x548C;uuid3&#x57FA;&#x672C;&#x76F8;&#x540C;&#xFF0C;&#x53EA;&#x4E0D;&#x8FC7;&#x91C7;&#x7528;&#x7684;&#x6563;&#x5217;&#x7B97;&#x6CD5;&#x662F;sha1</td>
</tr>
</tbody>
</table>
<p>&#x4E00;&#x822C;&#x800C;&#x8A00;&#xFF0C;&#x5728;&#x5BF9;uuid&#x7684;&#x9700;&#x6C42;&#x4E0D;&#x662F;&#x5F88;&#x590D;&#x6742;&#x7684;&#x65F6;&#x5019;&#xFF0C;uuid1&#x6216;&#x8005;uuid4&#x65B9;&#x6CD5;&#x5C31;&#x5DF2;&#x7ECF;&#x591F;&#x7528;&#x4E86;&#xFF0C;&#x4F7F;&#x7528;&#x65B9;&#x6CD5;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> uuid

print(uuid.uuid1())  <span class="hljs-comment"># &#x6839;&#x636E;&#x65F6;&#x95F4;&#x6233;&#x548C;&#x673A;&#x5668;&#x7801;&#x751F;&#x6210;uuid,&#x53EF;&#x4EE5;&#x4FDD;&#x8BC1;&#x5168;&#x7403;&#x552F;&#x4E00;</span>
print(uuid.uuid4())  <span class="hljs-comment"># &#x968F;&#x673A;&#x751F;&#x6210;uuid,&#x53EF;&#x80FD;&#x4F1A;&#x6709;&#x91CD;&#x590D;</span>

<span class="hljs-comment"># &#x4F7F;&#x7528;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x548C;&#x5B57;&#x7B26;&#x4E32;&#x751F;&#x6210;uuid.</span>
<span class="hljs-comment"># &#x6CE8;&#x610F;&#x4E00;&#x4E0B;&#x4E24;&#x70B9;:</span>
<span class="hljs-comment"># 1. &#x547D;&#x540D;&#x7A7A;&#x95F4;&#x4E0D;&#x662F;&#x968F;&#x610F;&#x8F93;&#x5165;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x5B83;&#x4E5F;&#x662F;&#x4E00;&#x4E2A;uuid&#x7C7B;&#x578B;&#x7684;&#x6570;&#x636E;</span>
<span class="hljs-comment"># 2. &#x76F8;&#x540C;&#x7684;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x548C;&#x60F3;&#x5230;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x751F;&#x6210;&#x7684;uuid&#x662F;&#x4E00;&#x6837;&#x7684;</span>
print(uuid.uuid3(uuid.NAMESPACE_DNS, <span class="hljs-string">&apos;hello&apos;</span>))
print(uuid.uuid5(uuid.NAMESPACE_OID, <span class="hljs-string">&apos;hello&apos;</span>))
</code></pre>

                    
                    </section>
                
                
                </div>
            </div>
        </div>

        
        <a href="./chapter01.html" class="navigation navigation-prev " aria-label="Previous page: 导入模块"><i class="fa fa-angle-left"></i></a>
        
        
        <a href="./chapter03.html" class="navigation navigation-next " aria-label="Next page: pip的安装配置"><i class="fa fa-angle-right"></i></a>
        
    </div>
</div>

        
<script src="gitbook/app.js"></script>

    
    <script src="gitbook/plugins/gitbook-plugin-splitter/splitter.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-copy-code-button/toggle.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>
    

<script>
require(["gitbook"], function(gitbook) {
    var config = {"prism":{},"splitter":{},"copy-code-button":{},"toggle-chapters":{},"highlight":{},"fontsettings":{"theme":"white","family":"sans","size":2}};
    gitbook.start(config);
});
</script>

        <!-- body:end -->
<!-- body:end -->
    </body>
    <!-- End of book Python基础 -->
<!-- End of book Python基础 -->
</html>
